Lược đồ tam giác của các số Bell Số Bell

Các số Bell có thể dễ dàng tính bằng cách xây dựng tam giác Bell, còn được gọi là dãy Aitken hoặc tam giác Peirce:

  1. Bắt đầu với số một. Đặt số này trên dòng thứ nhất.
  2. Tạo một dòng mới bằng việc lấy phầh tử cực phải của dòng ngay trên nó làm phần tử đầu tiên bên trái của dòng mới
  3. Lần lượt tính các số tiếp theo của dòng mới bằng cách lấy tổng phần tử bên trái nó với phần tử đứng cùng cột phàn tử ấy ở dòng trước nó
  4. Tiếp tục bước ba cho đến khi số phần tử của dòng mới nhiều hơn số phần tử của dòng trên một phần tử
  5. Số nằm phía trái mỗi dòng là số Bell cho mỗi dòng.

Như vây, dòng thứ nhất chỉ gồm số 1. Dòng tiếp theo (thứ hai) được tạo ra bằng cách lấy phần tử đầu tiên bên phải của dòng trên đặt vào vị trí đầu tiên bên trái. Ta có:

 1 1 x

Giá trị của x là tổng của hai phần tử ở cột tước nó cúng dòng (là 1) và dòng trên (cũng là 1) bằng 2.

 1 1 2 y

Giá trị y bằng giá trị đầu tiên tính từ bên phải của dòng trên (bằng 2), và tiếp theo:

 1 1 2 2 3 x

Bằng cách ấy ta có 5 dòng đầu của tam giác là:

 1 1 2 2 3 5 5 7 10 1515 20 27 37 52

Dòng thứ năm được tính như sau:

  • Lấy 15 từ dòng thứ tư
  • 15 + 5 = 20
  • 20 + 7 = 27
  • 27 + 10 = 37
  • 37 + 15 = 52

Số đứng ở dòng thứ n và côth thứ k là số các phân hoạch của tập {1,..., n} sao cho n là không cùng một lớp với bất kỳ số nào trong các phần tử k, k + 1,..., n − 1. Chẳng hạn có 7 phân hoặc của {1,..., 4} sao cho 4 không cùng lớp với các phần tử 2, 3, và có 10 phân hoạch của {1,..., 4} sao cho 4 không cùng lớp với phần tử 3. Hiệu của hai số trên (bằng 3) là số các phân hoạch của {1,..., 4} sao cho 4 cùng lớp với 2 nhưng không cùng lớp với 3. Số này có ngiã rằng có 3 phân hoặc của {1,..., 3} sao cho 3 không cùng lớp với 2.

Dùng phương pháp này có thể tính nhờ JavaScript như trên cho 219 số Bell đầu tiên:

function write_bell (hBound) { // writes Bell-0,..., Bell-hBoundvar value = [ 123.456, 1 ] // value [0] = unimportant, value [1] = 1for (var rowNr = 0; rowNr <= hBound; rowNr ++) {value [rowNr] = value [1]for (var colNr = rowNr - 1; colNr >= 1; colNr--) value [colNr] += value [colNr+1]document.write ('Bell-' + rowNr + ' = ' + value [1] + '<br>')}}write_bell (218)

Liên quan